Tarea 3 PDG

Author

Daniela Hidalgo Ferdy Salazar

Published

Invalid Date

1.Introduccióm:

En esta tarea para el curso GF-0604 Procesamiento de datos Geograficoss, se usaran dos archivos de datos. el primero es un archivo json de regiones Socioeconomicas de Costa Rica, cuya fuente es el Atlas Digital de Costa Rica de 2014. El segundo archivo, es un csv de Presencia y observación de mamiferos en Costa Rica, estos se obtuvieron en el portal de datos de observaciones de GBIF.

Aunque en principio, las regiones no son usadas en temas de ecologia, se usaran para una mejor comprension de las observaciones. Ademas, se vera una relacion entre la llamada “mancha urbana” y la presencia de mamiferos.

2.Carga de paquetes:

Code
library(tidyverse)
library(DT)
library(sf)
library(rgdal)
library(raster)
library(terra)
library(leaflet)
library(leaflet.extras)
library(leafem)
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
library(viridis)
library(devtools)

3.Carga de datos:

Code
###Regiones

regiones <- 
  st_read("datos/regiones.geojson", quiet = TRUE)

###Mamiferos

mamiferos <-
  st_read(
    "datos/mamiferos.csv.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude", # columna de longitud decimal
      "Y_POSSIBLE_NAMES=decimalLatitude"   # columna de latitud decimal
    ),
    quiet = TRUE
  )

# Cambio de sistema de coordenadas
regiones <-
  regiones |>
  st_transform(4326)

st_crs(mamiferos) <- 4326

4.Uniones

Code
mamiferos_union_region <-
  st_join(
    x = mamiferos,
    y = dplyr::select(regiones, region),
    join = st_within
  )
Code
riqueza_especies_mamiferos <-
  mamiferos_union_region |>
  st_drop_geometry() |>
  group_by(region) |>
  summarise(riqueza_especies_mamiferos = n_distinct(species, na.rm = TRUE))
Code
region_union_riqueza <-
  left_join(
    x = regiones,
    y = riqueza_especies_mamiferos,
    by = "region"
  ) |>
  replace_na(list(riqueza_especies_mamiferos = 0))

5.Mapa de riqueza de especies de mamíferos en regiones socioeconómicas

Code
# Paleta de colores de riqueza de mamiferos
colores_riqueza_especies <-
  colorNumeric(
    palette = "blue",
    domain = region_union_riqueza$riqueza_especies_mamiferos,
    na.color = "transparent"
  )

# Paleta de colores de especies
colores_especies <- colorFactor(
  palette = viridis(length(unique(mamiferos$species))), 
  domain = mamiferos$species
)

# Mapa leaflet
leaflet() |>
  setView(
    lng = -84.19452,
    lat = 9.572735,
    zoom = 7) |>
  addTiles(group = "Mapa general (OpenStreetMap)") |>
  addProviderTiles(
    providers$Esri.WorldImagery, 
    group = "Imágenes satelitales (ESRI World Imagery)"
  ) |> 
  addPolygons(
    data = region_union_riqueza,
    fillColor = ~ colores_riqueza_especies(region_union_riqueza$riqueza_especies_mamiferos),
    fillOpacity = 0.8,
    color = "black",
    stroke = TRUE,
    weight = 1.0,
    popup = paste(
      paste("<strong>Riqueza de mamiferos:</strong>", region_union_riqueza$riqueza_especies_mamiferos),
      sep = '<br/>'
    ),
    group = "Riqueza de mamiferos"
  ) |>
  addScaleBar(
    position = "bottomleft", 
    options = scaleBarOptions(imperial = FALSE)
  ) |>    
  addLegend(
    position = "bottomleft",
    pal = colores_riqueza_especies,
    values = region_union_riqueza$riqueza_especies_mamiferos,
    group = "Riqueza de mamiferos",
    title = "Riqueza de mamiferos"
  ) |>
  addCircleMarkers(
    data = mamiferos,
    stroke = F,
    radius = 4,
    fillColor = ~colores_especies(mamiferos$species),
    fillOpacity = 1.0,
    popup = paste(
      paste0("<strong>Especie: </strong>", mamiferos$species),
      paste0("<strong>Localidad: </strong>", mamiferos$locality),
      paste0("<strong>Fecha: </strong>", mamiferos$eventDate),
      paste0("<strong>Fuente: </strong>", mamiferos$institutionCode),
      paste0("<a href='", mamiferos$occurrenceID, "'>Más información</a>"),
      sep = '<br/>'
    ),    
    group = "Registros de presencia"
  ) |>  
  addLayersControl(
    baseGroups = c(
      "Mapa general (OpenStreetMap)", 
      "Imágenes satelitales (ESRI World Imagery)"
    ),
    overlayGroups = c(
      "Riqueza de mamiferos",
      "Registros de presencia"
    )
  ) |>
  addResetMapButton() |>
  addSearchOSM() |>
  addMouseCoordinates() |>
  addFullscreenControl() |>
  hideGroup("Registros de presencia") 

6.Tabla de riqueza de especies de mamíferos en regiones socioeconómicas

Code
riqueza_especies_mamiferos |>
  dplyr::select(region, riqueza_especies_mamiferos) |>
  datatable(
    colnames = c("Nombre de la región socioeconómica", "Riqueza de especies de mamíferos"),
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    ))

7.Gráficos estadísticos:

7.1.Gráfico de barras de riqueza de especies de mamíferos en regiones socioeconómicas

Code
grafico_mamiferos_region <-
riqueza_especies_mamiferos |>
  ggplot(aes(x = reorder(region,-riqueza_especies_mamiferos), y = riqueza_especies_mamiferos)) +
  geom_bar(stat = "identity", position = "dodge") +
  ggtitle("Riqueza de mamíferos en regiones socioeconómicas") +
  xlab("Regiones socioeconómicas") +
  ylab("Riqueza de mamíferos")+
  labs(caption = "Fuente: Ministerio de Planificación (MIDELAN)") +
  theme_gray() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

ggplotly(grafico_mamiferos_region)

7.2.Gráfico de barras de cantidad de registros de presencia de Bradypus variegatus (perezoso de tres dedos) por año, desde 2000 hasta 2023.

Code
perezosos_3dedos <-
mamiferos_union_region |>
  filter(year >= 2000) |>
  filter(species == "Bradypus variegatus") |>
  ggplot(aes(x = year)) +
  geom_bar() +
  ggtitle("Registro de presencia del Bradypus variegatus (perezoso de tres dedos) 
desde el año 2000 hasta el 2023.") +
  xlab("Año") +
  ylab("Cantidad de perezosos de tres dedos") +
  theme_gray()

ggplotly(perezosos_3dedos)